/**
 * 检查值是否为空（支持字符串、数组、对象、null、undefined）
 * @param {*} value - 需要检查的值
 * @returns {boolean} - 如果为空返回true，否则返回false
 */
export function isEmpty(value) {
  // 处理 null 和 undefined
  if (value === null || value === undefined) {
    return true;
  }

  // 处理字符串
  if (typeof value === 'string') {
    return value.trim() === '';
  }

  // 处理数组
  if (Array.isArray(value)) {
    return value.length === 0;
  }

  // 处理对象
  if (typeof value === 'object') {
    return Object.keys(value).length === 0;
  }

  // 其他类型（数字、布尔值等）视为非空
  return false;
}

export function showLoading(text = '加载中...') {
  wx.showLoading({
    title: text,
    mask: true
  });
}

export function hideLoading() {
  wx.hideLoading();
}

export function showError(message = '操作失败') {
  wx.showToast({
    title: message,
    icon: 'none',
    duration: 2000
  });
}

/**
 * 将包含特定键值对的对象数组转换为映射
 * @param {Array} arr - 源数组
 * @param {string} keyProp - 用作键的属性名
 * @param {string} valueProp - 用作值的属性名
 * @returns {Object} - 转换后的映射对象
 */
export function convertArrayToMap(arr, keyProp = 'dictValue', valueProp = 'dictLabel') {
    return arr.reduce((map, item) => {
        map[item[keyProp]] = item[valueProp];
        return map;
    }, {});
}